<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>133-test-自写-数组去重案例</title>
    <script>
        var arr = ['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b'];
        console.log(arr);
        console.log('------------------------------------------------------')
        var buChongFuArray = [];
        var num1 = -1;
        var b1 = 0;
        // 以上初始化。
        while (true) {
            if (num1 == -1) {
                buChongFuArray.push(arr[b1]);
                b1++;
                if (b1 > arr.length) {
                    break;
                }
            }
            for (var j = 0; j < buChongFuArray.length; j++) {
                num1 = arr.indexOf(buChongFuArray[j], j + 1);
                if (num1 > -1) {
                    var newArr2 = [];
                    for (var i = 0; i < num1; i++) {
                        newArr2.push(arr[i]);
                    }
                    for (var i = num1 + 1; i < arr.length; i++) {
                        newArr2.push(arr[i]);
                    }
                    arr = newArr2;
                    console.log(arr);
                    console.log("不重复数组：" + buChongFuArray);
                }
            }
        }
        console.log('------------------------------------------------------')
        console.log('最终arr：' + arr);
        console.log('最终buChongFuArray：' + buChongFuArray);




        // 改进 1：
        // var arr = ['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b'];
        // var newArr = []; // 新数组
        // var iAN = -1; // 初始化-1，-1则添加到新数组中，变量是在老数组中查找新数组的元素，找不到，返回-1
        // // var a = 0; // 游标，新数组中的索引
        // while (true) {
        //     if (iAN == -1) {
        //         newArr.push(arr[newArr.length]);
        //         if (newArr.length >= arr.length) {
        //             break;
        //         }
        //         // newArr.push(arr[a]);
        //         // a++;
        //         // if (a > arr.length) {
        //         //     break;
        //         // }
        //     }
        //     for (var i = 0; i < newArr.length; i++) {
        //         iAN = arr.indexOf(newArr[i], i + 1);
        //         if (iAN > -1) {
        //             var newArr2 = [];
        //             for (var j = 0; j < iAN; j++) {
        //                 newArr2.push(arr[j]);
        //             }
        //             for (var j = iAN + 1; j < arr.length; j++) {
        //                 newArr2.push(arr[j]);
        //             }
        //             arr = newArr2;
        //         }
        //     }
        // }
        // console.log(arr);

        // 最终：
        var arr = ['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b'];
        var newArr = []; // 新数组
        var iAN = -1; // 初始化-1，-1则添加到新数组中，变量是在老数组中查找新数组的元素，找不到，返回-1
        while (true) {
            if (iAN == -1) {
                newArr.push(arr[newArr.length]);
                if (newArr.length >= arr.length) {
                    break;
                }
            }
            for (var i = 0; i < newArr.length; i++) {
                iAN = arr.indexOf(newArr[i], i + 1);
                if (iAN > -1) {
                    var newArr2 = [];
                    for (var j = 0; j < iAN; j++) {
                        newArr2.push(arr[j]);
                    }
                    for (var j = iAN + 1; j < arr.length; j++) {
                        newArr2.push(arr[j]);
                    }
                    arr = newArr2;
                }
            }
        }
        console.log(arr);
    </script>
</head>

<body>

</body>

</html>